FIG. 1 is a view showing the organization of a control unit for an automotive engine which is currently available as commercial products and is put into practical service, while FIG. 2 is a view of the internal organization of the von Neumann type control processor utilized within the engine control unit of FIG. 1.
In these figures, the reference numeral 100 designates a von Neumann type control processor; reference numeral 101 designates a power transistor; reference numeral 102 designates an ignition coil; reference numeral 103 designates a distributor; reference numeral 104 designates a spark plug; reference numeral 105 designates an injector drive valve; reference numeral 110 designates an input/output portion of the processor 100; reference numeral 111 designates an analog/digital convertor (A/D convertor); reference numeral 112 designates a timer; reference numeral 113 designates a counter; reference numeral 114 designates a ROM; reference numeral 115 designates a RAM; reference numeral 116 designates an interrupt control unit; and reference numeral 117 designates a CPU.
The von Neumann type processor herein means a conventional processor which sequentially executes a stored program by means of a program counter.
Next, the method of operation is described.
Among the primary input signals inputted to the engine control unit 100 are: crank angle sensor signal which gives information with respective to the rpm of the engine and the ignition timings; air intake amount signal corresponding to the engine load; water temperature signal corresponding to the engine temperature; and the cell voltage which is the battery voltage. On the other hand, among the output signals are ignition control signal and injector drive signal.
This engine control unit 100 detects via the sensors the state of the engine, the rpm of the engine, the amount of air intake, and water temperature, calculates on the basis of these detected values the optimum ignition timings from the preset ignition timings, interrupts the primary current of the power transistor 101, and drives the ignition coil 102, thereby effecting the ignition timing control. Among the input signals, the idling detection signal is a digital-valued signal, by which only its state is shown, and which is read in via the I/O 110; the intake air amount signal, the water temperature signal, and the battery signal are inputted as analog values, and are converted into digital values by the A/D convertor 111.
With respect to the crank angle sensor signals, there are those which are inputted directly to the interrupt control unit 116 to generate an interrupt, and others which are demultiplied by the counter 113 measuring the predetermined number of the crank angle pulses and which are then inputted to the interrupt control unit 116 to generate an interrupt.
Next, the method by which the ignition timings are calculated utilizing these signals is described. First, the fundamental ignition timing (phase) .theta..sub.B is obtained from the air intake amount signal and the crank angle signal values. To this (obtained) value is added a water temperature correction (phase) .theta..sub.WT in accordance with the water temperature signal which is the engine warm state signal. A correction value which further advances from the time point 5 degrees before the top dead center (top dead center minus 5 degrees) is determined from these signals. The ignition timing (phase) .theta..sub.AD V is obtained by: EQU .theta..sub.AD V =.theta..sub.B +.theta..sub.WT
The actual ignition timing is determined with the crank angle sensor signal as the reference. FIG. 3 shows a conceptual view of this correction process. These processes of operations are effected by the CPU 117 of FIG. 2; its program is stored in the ROM 114, the RAM being utilized for maintaining the intermediate results. The CPU 117 is a von Neumann type computer having an address counter which shows the address of the ROM 114 having an executable program therein.
Further, the calculation of the injector pulses for the air intake/fuel control is effected as follows. The pulse width Ti is given by: EQU Ti=Fuel.times.K.sub.af .times.K.sub.wt .times.K.sub.VB
and is calculated on the basis of the air intake amount signal, the water temperature signal, the battery voltage, the crank angle sensor signal, and the idling signal.
Further, the software organization of these calculations are as shown in FIG. 4. The judgment with respect to whether it is a fuel cut or not is effected by the idling detection sensor by means of the interrupt routine of FIG. 11(b).
Further, for the execution of this software, the whole of the crank angle sensor (SGT) signal period is utilized as shown in FIG. 5, such that the three cycles of fuel injection, ignition timing, and the asynchronous injection are repeated every 180 degrees of the crank angle.
Since the conventional control processors are organized as described above, due to the improvement of the performance of the engine and the appearance of high rpm multi-cylinder engines, a severe problem has arisen that the processor is fully occupied by the processing of the interrupts so as to have no time for the execution of the main routine, and that the processing other than the fuel injection and the ignition timing controls is beyond its capacity and totally unpracticable.
This invention has been done to solve the above problems, and aims at obtaining a control processor which improves the engine performance in accordance with the utilization of the higher rpm multi-cylinder engines, and which effects high precision controls utilizing a variety of information from a multitude of sensors, so as to control a high performance engine utilized in high performance passenger automobiles, etc., which are good in the riding comfort, enhanced in fuel economy, and excellent in starting and idling characteristics.